With the advent of technology has come the desire to execute securities transactions in faster and more efficient methods. One method involves using a global network and a computer system as an interface between the person desirous of executing the trade and the trader.
The existing CATS-OS system includes use of a client-server architecture, which has a number of servers. These servers include, for example, a transaction server, a rate server, a hand-off server, a credit server, and a security server. In a typical interaction with the system, the user of the CATS-OS system connects to the system and is authenticated by the security manager, which allows the user certain privileges depending on the level of the user, such as customer, trader, and administrator.
A request for quote aspect of the CATS-OS system allows deals to be consummated that exceed the limits allowed by the host bank and in other circumstances in which a rate may not be available, for example, by allowing a trader to respond to a request for a quote and to provide a proposed price against which the user can trade. A sales trader aspect of the CATS-OS system allows a special type of trader, referred to as a sales trader, to deal on behalf of a selected customer within the CATS-OS system. A multi-bank aspect of the CATS-OS system allows a plurality of banks to deliver their prices and enables the single bank CATS-OS system to perform in a multi-bank mode by establishing links to one or more additional banks.
In the existing CATS-OS system, every component of the CATS-OS object linking and embedding (OLE) interfaces has only one top-level single createable class, called master class. The existing version of the OLE servers in the CATS-OS OLE interface has a simple flat hierarchy. Presently, the instance properties of all of its classes are set to be createable multi-use so that the OLE server can handle multiple objects of every class created by one or more OLE client applications. With this structure, only one instance of CATS-OS OLE interface is running to deal with all connections. Obviously, the existing CATS-OS interface can become a bottleneck when massive parallel connection requests are invoked.
A goal of the existing CATS-OS system is to provide the ability for a user working at a workstation, or particularly at a personal computer (PC), to automatically and electronically trade whether it is foreign exchange (FX) warrants or other instruments. As the existing CATS-OS system has been deployed to customers, and as electronic commerce has grown, it has become apparent that additional issues arise in doing electronic commerce.
For example, an issue that many organizations have is that in performing a trade at a PC, redundant entries are necessary into a number of the organization's other systems. Another potential issue for certain organizations which wish to use the existing CATS-OS system for automating electronic commerce is that a certain degree of manual intervention is still required for a user to perform the trade at the PC, so it is difficult to thoroughly automate the process.
In one exemplary conventional system, the server computer has installed into its software a single class. A class is a specification of what types of data and functions are permissible. As an example, one class may involve letter manipulation. In this class, the data type is “string” which is a serial collection of letters. A permissible function within this class is addition. Thus, a user of this class first creates objects (i.e. words like “cat” and “s”) and adds them together (i.e. “cat”+“s” results in the new string “cats”).
In this example, the addition function is defined to add the second presented string to the first in a serial fashion. Thus, if a user were to execute this addition function as follows: “s”+“cat”, the result would be a new string “scat”. Similarly, if the data type were strictly limited to letters, the function “4”+“7” would not result in “47” nor the traditional arithmetic result “11” but would result in an error message as the class would be expecting to operate on letters and not numbers.
From this simple example, a class is therefore defined as a software tool that allows users to operate on 1) specific data types using 2) specifically defined functions.
With this background established, a conventional trading system was developed where a single class was defined and the multiple traders accessed the definitions and functions of that class. While a single class can operate on multiple objects of that class, a bottleneck occurs if too many objects are in need of class resources at one time. More specifically, in this conventional system, each trader in the exchange is given his/her own object of the class. If there are thousands of traders trying to execute trades simultaneously, the computer will continually access the class definitions and functions to execute those trades. If there are more objects accessing class resources than the system can process at one time, the computer will begin to generate error messages and prevent certain trades from being executed. In a very bad scenario, the computer may shut down from this overload.